package com.ruoyi.slope.api.constant;

import lombok.Getter;

import java.util.HashMap;
import java.util.Map;

/**
 * 监测类型枚举
 * <p>
 * 用于在内存中维护 monitorType 与对应数据库表名的映射关系。
 * 每个枚举实例包含：
 * <ul>
 *     <li>monitorType：监测类型编号（字符串形式）</li>
 *     <li>tableName：对应的数据库表名</li>
 * </ul>
 * 可以通过 monitorType 快速查找对应的数据表。
 * </p>
 */
@Getter
public enum MonitorTypeEnum {

    /** 裂缝传感器 */
    CRACK("2", "slope_crack_data"),
    /** 支挡结构物倾斜传感器 */
    STRUCTURE_TILT("7", "slope_crack_data"),
    /** 气象降雨量传感器 */
    RAINFALL("11", "slope_weather_data"),
    /** 气温传感器 */
    TEMPERATURE("12", "slope_weather_data"),
    /** 加速度传感器 */
    ACCELERATION("15", "slope_crack_data"),
    /** 土壤含水率传感器 */
    SOIL_MOISTURE("20", "slope_soil_data"),
    /** 土壤温度传感器 */
    SOIL_TEMPERATURE("21", "slope_soil_data"),
    /** 防护倾角传感器 */
    FENCE_TILT("23", "slope_fencenet_data"),
    /** 防护加速度传感器 */
    FENCE_ACCELERATION("24", "slope_fencenet_data");

    /** 监测类型编号（字符串形式）
     * -- GETTER --
     * 获取监测类型编号
     */
    private final String monitorType;

    /** 对应的数据库表名
     * -- GETTER --
     * 获取对应表名
     */
    private final String tableName;

    MonitorTypeEnum(String monitorType, String tableName) {
        this.monitorType = monitorType;
        this.tableName = tableName;
    }

}
